/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package persistencia;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import modelo.ProcesoAsistencial;

/**
 *
 * @author Zona Media
 */
public class BaseDatosProcesosAsistenciales {
    private static BaseDatos bbdd = new BaseDatos("jdbc:mysql://localhost/proyectosge", "com.mysql.jdbc.Driver");

    private static Statement s;
    private static Connection c;
    private static ResultSet registro;
    
    public static void anadirProcesoAsistencial(ProcesoAsistencial m) throws SQLException{
        //int idMax = getMaxId();
        //idMax++;
        //System.out.println(idMax);
        //if(idMax!=-1 && idMax!=-2){
            //String cadena="INSERT INTO marcas (ID,MARCA) VALUES(" +idMax + ",'" + m.getNombre()+ "')";
        String cadena="INSERT INTO procesoasistencial (nombre) VALUES('" + m.getNombre()+ "')";
        try{
            bbdd.abrir();
            c=bbdd.getConexion();
            s= c.createStatement();
            s.executeUpdate(cadena);
            s.close();
            //bbdd.cerrar();
            //return 0;
        }
        catch(NullPointerException e){
            System.err.println("Error en anadirProcesoAsistencial Null. "+e.getMessage());
            e.printStackTrace();
            throw e;
            //return -3;
        }
        catch ( SQLException e)
        {
            System.err.println("ERROR en anadirProcesoAsistencial Sql "+e.getMessage());
            bbdd.cerrar();
            throw e;
            //return -1;
        }
        finally{
            bbdd.cerrar();
        }
        //}
        //return -2;
    }
    
    public static ArrayList<ProcesoAsistencial> buscarProcesosPorNombre(String nomb) throws SQLException{
        ArrayList<ProcesoAsistencial> listaProcesos = new ArrayList<ProcesoAsistencial>();
        try{
            bbdd.abrir();
            c=bbdd.getConexion();
            s=c.createStatement();
            String cadena="SELECT * FROM procesoasistencial WHERE nombre='"+nomb+"'";
            registro =s.executeQuery(cadena);
            ProcesoAsistencial pA;
            while (registro.next()) {
                pA = new ProcesoAsistencial(registro.getInt("idPA"),registro.getString("nombre"));
                listaProcesos.add(pA);
            }
            
            s.close();
            //bbdd.cerrar();
            return listaProcesos;
            //return "-1";
        }
        catch ( SQLException e){
            System.err.println("Error en buscarProcesosPorNombre "+e.getMessage());
            e.printStackTrace();
            throw e;
            //return "-2";
        }
        finally{
            bbdd.cerrar();
        }
    }
    
    public static ArrayList<ProcesoAsistencial> buscarTodosProcesos() throws SQLException{
        ArrayList<ProcesoAsistencial> listaProcesos = new ArrayList<ProcesoAsistencial>();
        try{
            bbdd.abrir();
            c=bbdd.getConexion();
            s=c.createStatement();
            String cadena="SELECT * FROM procesoasistencial";
            registro =s.executeQuery(cadena);
            ProcesoAsistencial pA;
            while (registro.next()) {
                pA = new ProcesoAsistencial(registro.getInt("idPA"),registro.getString("nombre"));
                listaProcesos.add(pA);
            }
            
            s.close();
            //bbdd.cerrar();
            return listaProcesos;
            //return "-1";
        }
        catch ( SQLException e){
            System.err.println("Error en buscarProcesos "+e.getMessage());
            e.printStackTrace();
            throw e;
            //return "-2";
        }
        finally{
            bbdd.cerrar();
        }
    }
    
    public static void modificarProcesoAsistencial(ProcesoAsistencial p) throws SQLException{
        String sentencia="UPDATE procesoasistencial SET nombre='"+p.getNombre()+"' WHERE idPA="+p.getIdProcesoAsistencial();
        try{
            bbdd.abrir();
            c=bbdd.getConexion();
            s=c.createStatement();
            s.executeUpdate(sentencia);
            s.close();
            //bbdd.cerrar();
            //return 0;
        }
        catch(SQLException e){
                
                System.err.println("Error en modificarProcesoAsistencial Sql");
                e.printStackTrace();
                throw e;
                //return -1;
        }
        finally{
            bbdd.cerrar();
        }
    }
    
    public static void borrarProcesoAsistencial(int id) throws SQLException {
        String cadena = "DELETE FROM procesoasistencial WHERE idPA=" + id;
        try {
            bbdd.abrir();
            c = bbdd.getConexion();
            s = c.createStatement();
            s.executeUpdate(cadena);
            s.close();
            //bbdd.cerrar();
            
        } catch (SQLException e) {
            System.err.println("Error en borrarMarca Sql");
            e.printStackTrace();
            throw e;
        }
        finally{
            bbdd.cerrar();
        }
    }
}
